group { name: "elm/notify/block_events/default";
   data.item: "hide_finished_signal" "on";
   parts {
      part { name: "block_events"; type: RECT;
         desc { state: "default";
            color_class: "/dim/normal/notify";
            color: 255 255 255 0; // no cc
         }
         desc { "visible";
            inherit: "default" 0.0;
            color: 255 255 255 255; // no cc
         }
      }
      program { signal: "mouse,clicked,1"; source: "block_events";
         action: SIGNAL_EMIT "elm,action,click" "elm";
      }
      program { signal: "show"; source: "*";
         action: STATE_SET "visible";
         targets: "block_events";
         transition: DECELERATE 0.2;
      }
      program { signal: "hide"; source: "";
         action: STATE_SET "default" 0.0;
         target: "block_events";
      }
      program { signal: "elm,state,hide"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "block_events";
         transition: DECELERATE 0.5;
         after: "hide_finish";
      }
      program { name: "hide_finish";
         action: SIGNAL_EMIT "elm,action,hide,finished" "elm";
      }
   }
}

group { name: "elm/notify/top/default";
   data.item: "hide_finished_signal" "on";
   parts {
      part { name: "clip"; type: RECT;
         description { state: "default" 0.0;
            rel1.offset: -500 -500;
            rel2.offset: 499 499;
            color: 255 255 255 0; // no cc
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            color: 255 255 255 255; // no cc
         }
      }
      part { name: "shadow"; mouse_events: 0;
         clip_to: "clip";
         description { state: "default" 0.0;
            rel.to: "base";
            WIN_SHADOW;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
         }
      }
      part { name: "base"; type: RECT;
         clip_to: "clip";
         scale: 1;
         description { state: "default" 0.0;
            color_class: "/bg/normal/popup/base";
            rel1.offset: 10 10;
            rel2.offset: -11 -11;
            rel1.relative: 0.0 -1.0;
            rel2.relative: 1.0 0.0;
            offscale;
         }
         description { state: "visible" 0.0;
            inherit: "default" 0.0;
            rel1.relative: 0.0 0.0;
            rel2.relative: 1.0 1.0;
         }
      }
      part { name: "elm.swallow.content"; type: SWALLOW;
         clip_to: "clip";
         scale: 1;
         description { state: "default" 0.0;
            rel.to: "base";
            rel1.offset: 10 10;
            rel2.offset: -11 -11;
            offscale;
         }
      }
   }
   programs {
      program { signal: "show"; source: "";
         action: STATE_SET "visible" 0.0;
         target: "clip";
         target: "base";
         target: "shadow";
         transition: DECELERATE 0.2;
      }
      program { signal: "hide"; source: "";
         action: STATE_SET "default" 0.0;
         target: "clip";
         target: "base";
         target: "shadow";
      }
      program { signal: "elm,state,hide"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "clip";
         target: "base";
         target: "shadow";
         transition: DECELERATE 0.5;
         after: "hide_finish";
      }
      program { name: "hide_finish";
         action: SIGNAL_EMIT "elm,action,hide,finished" "elm";
      }
   }
}

group { name: "elm/notify/bottom/default";
   inherit: "elm/notify/top/default";
   parts {
      part { name: "base";
         description { state: "default" 0.0;
            rel1.offset: 10 10;
            rel2.offset: -11 -11;
            rel1.relative: 0.0 1.0;
            rel2.relative: 1.0 2.0;
         }
      }
   }
}

group { name: "elm/notify/left/default";
   inherit: "elm/notify/top/default";
   parts {
      part { name: "base";
         description { state: "default" 0.0;
            rel1.offset: 10 10;
            rel2.offset: -11 -11;
            rel1.relative: -1.0 0.0;
            rel2.relative: 0.0 1.0;
         }
      }
   }
}

group { name: "elm/notify/right/default";
   inherit: "elm/notify/top/default";
   parts {
      part { name: "base";
         description { state: "default" 0.0;
            rel1.offset: 10 10;
            rel2.offset: -11 -11;
            rel1.relative: 1.0 0.0;
            rel2.relative: 2.0 1.0;
         }
      }
   }
}

group { name: "elm/notify/top_left/default";
   inherit: "elm/notify/top/default";
   parts {
      part { name: "base";
         description { state: "default" 0.0;
            rel1.offset: 10 10;
            rel2.offset: -11 -11;
            rel1.relative: 0.0 -1.0;
            rel2.relative: 1.0 0.0;
         }
      }
   }
}

group { name: "elm/notify/top_right/default";
   inherit: "elm/notify/top/default";
   parts {
      part { name: "base";
         description { state: "default" 0.0;
            rel1.offset: 10 10;
            rel2.offset: -11 -11;
            rel1.relative: 0.0 -1.0;
            rel2.relative: 1.0 0.0;
         }
      }
   }
}

group { name: "elm/notify/bottom_left/default";
   inherit: "elm/notify/top/default";
   parts {
      part { name: "base";
         description { state: "default" 0.0;
            rel1.offset: 10 10;
            rel2.offset: -11 -11;
            rel1.relative: 0.0 1.0;
            rel2.relative: 1.0 2.0;
         }
      }
   }
}

group { name: "elm/notify/bottom_right/default";
   inherit: "elm/notify/top/default";
   parts {
      part { name: "base";
         description { state: "default" 0.0;
            rel1.offset: 10 10;
            rel2.offset: -11 -11;
            rel1.relative: 0.0 1.0;
            rel2.relative: 1.0 2.0;
         }
      }
   }
}

group { name: "elm/notify/center/default";
   inherit: "elm/notify/top/default";
   parts {
      part { name: "base";
         description { state: "default" 0.0;
            rel1.offset: 10 10;
            rel2.offset: -11 -11;
            rel1.relative: 0.0 0.0;
            rel2.relative: 1.0 1.0;
         }
      }
   }
}

